#pragma once
#include <DirectXMath.h>
#include <DirectXPackedVector.h>
#include <vector>
class Vertex
{
protected:
	DirectX::XMFLOAT3 m_position;
	DirectX::XMFLOAT3 m_vertexNormal;
	DirectX::XMFLOAT2 m_UVCoordinate;
public:
	Vertex(float* _position);
	Vertex(std::vector<float>_position);
	Vertex(std::vector<float>_position, float uCoordinate, float vCoordinate);
	~Vertex();
	DirectX::XMFLOAT3 GetPosition();
	DirectX::XMFLOAT3 GetVertexNormal();
	DirectX::XMFLOAT2 GetUVCoordinate();
	void SetPosition(float* position);
	void SetPosition(std::vector<float>position);
	void SetVertexNormal(float* _vertexNormal);
	void SetVertexNormal(std::vector<float>_vertexNormal);
	void SetVertexNormal(float x, float y, float z);
	void SetVertexNormal(DirectX::FXMVECTOR vertexNormalVector);
	void SetUVCoordinate(float u, float v);
};